//两数之和
//给定一个整数数组 nums 和一个整数目标值 target，
//请你在该数组中找出 和为目标值 target  的那 两个 整数，并返回它们的数组下标

//法一：哈希表
class Solution {
    public int[] twoSum(int[] nums, int target) {
        //哈希表<元素,下标>
        int len = nums.length;
        HashMap<Integer, Integer> map = new HashMap<>(len-1);
        map.put(nums[0],0);
        for(int i = 1; i<len; i++){
            int sub = target-nums[i];
            if(map.containsKey(sub)){
                return new int[]{map.get(sub),i};
            }
            map.put(nums[i], i);
            
        }
        return new int[0];

    }
}

//枚举暴力
class Solution {
    public int[] twoSum(int[] nums, int target) {
        int[] ret = new int[2];
        for(int i = 0; i<nums.length; i++){
            for(int j = i+1;j<nums.length;j++){
                if(nums[i]+nums[j]==target){
                    return new int[] {i, j};
                }
            }
            
        }
        return new int[0];

    }
}